特定のhandleに対して以前コールした際に発生したエラーの詳細をレポートします。ttXlaErrorへの後続のコールで、複数のエラーが返される場合があります。エラー・スタックは、ttXlaError自体およびttXlaErrorRestart以外の関数をコールするたびに消去されます。
この関数の使用方法については、「XLAエラーの処理」を参照してください。
SQLRETURN ttXlaError(ttXlaHandle_h handle,
out SQLINTEGER *errCode,
out char *errMessage,
SQLINTEGER maxLen,
out SQLINTEGER *retLen)
エラー情報が返される場合はSQL_SUCCESSを返し、エラー・スタックにそれ以上エラーがない場合はSQL_NO_DATA_FOUNDを返します。errMessageバッファの大きさが十分でない場合、ttXlaErrorはSQL_SUCCESS_WITH_INFOを返します。
エラー・スタックに複数のエラーが存在する可能性があります。この例では、それらをすべて読み取る方法を示します。
char message[100];
SQLINTEGER code;
for (;;) {
rc = ttXlaError(xlahandle, &code, message, sizeof (message), &retLen);
if (rc == SQL_NO_DATA_FOUND)
break;
if (rc == SQL_ERROR) {
printf("Error in fetching error message\n");
break;
}
else {
printf("Error code %d: %s\n", code, message);
}
}
複数のスレッドを使用して単一のXLA接続のTimesTenトランザクション・ログにアクセスすると、同時アクセスを制御するためのラッチが作成されます。なんらかの理由でスレッドでラッチを取得できない場合、XLA関数はSQL_INVALID_HANDLEを返します。